••• This release is supplied as a 'patch' file that updates version 1.0.1x41 of ScriptWizard to version 1.5b6. The patcher will not update any other version. The result of the patch is a date-limited program that will expire at the end of April 1995. Before that date, we will either have released "the real thing" or we will post another patch file. •••
This is unfinished software, and it has some bugs remaining. Please inform us of any bugs you discover, and please let us have your feedback.
Please send all your bug reports and feedback to this electronic mail address:
sw.test@ctalk.exnet.com (this e-mail address is due to change in early April 1995; if you have trouble sending messages to it, use "commstalk.hq@applelink.apple.com" instead).
Special note: we've had reports that certain resources inside the ScriptWizard 1.5 program file are corrupt and can't be opened in ResEdit; in fact they are not corrupted, we are using software that compresses the contents of the program file and as a side effect of this, the program's resources are not hackable in ResEdit. Sorry.
"True" single stepping
This version of ScriptWizard supports 'true' single stepping: even if the event log window is closed, when single stepping is activated the lines of AppleScript in the script editing window will be highlighted one by one as script execution proceeds. To see the script source code "animate" while the script actually runs, start single stepping as normal, and as soon as the first line of the script is highlighted click the "run" button.
When you single-step a script, ScriptWizard has to do a little bit of work to prepare itself. If the script is very long, this can take up to a minute or more. If ScriptWizard is unable to cope with single stepping a particular script (because of a bug in ScriptWizard) it will report the problem via an alert window. If you disable 'animated single stepping' in the Script menu, the program will instead use the simple Apple event stepping mechanism supported in ScriptWizard 1.0. If you find a reproducible case in which ScriptWizard refuses to step your script, please send the script by email to us, so we can identify the problem.
A new version of the "pause script" OSAX is supplied with SW 1.5; this must be installed for animated single-stepping to work. An error message is shown if it is missing, or if an out of date version is present.
ScriptWizard 1.5b6x3
This version expires at the end of April 1995. We have renumbered the program 'v1.5' in view of the major enhancements it offers over v1.0.
Version 1.5b6x3 differs from version 1.1b5x21 as follows:
• many bug fixes for event logging (log/start log/stop log aevts):
- log & start log should only have an effect if log window is open
• small reorganizations of app & doc initializations, to make profiling easier
(& to speed app & doc loading a little, by deferring creation of windows)
• bug fixes: re-enabled "record" facility, and start/stop log from script features
• allow application to sleep, when polling for events while script is running
(but don't sleep, if script is compiling, to improve compilation speed)
• bug fix: result window wasn't cleared if no new new value resulted from run
• bug fix: result window wasn't cleared before stuffing new values
• user can hold down option key, to force compilation, when asking for syntax check
• new shortcut: command-shift-S single steps
• description pane in script editor now has vertical scroll bar
• fixed bug: handlers popup wrongly identified 'script xxx' even if the keywords were split over a line ending
• new "about box" picture
• fixed printing bug: 1.1b5 & some prior versions split lines of script text over page breaks; this is fixed in 1.5b6
• fixed bug: block endless loops while doing wrap-around replace all
• fixed bug: made 'replace again' work
ScriptWizard 1.1b5x21
Version 1.1b5x21 differs from version 1.1b4x17 as follows:
• fixed bug: compile script AE (from one open script to another) did not work
• changed aete IDs of all error record fields, to avoid namespace conflicts
• moved "show debug log" command to the "script" menu: this command is, now, only available if user holds down control & command keys during app startup (ie the end user won't see it)
• reinstated "use applescript formatting" menu command: now under "edit" menu
• bug fix: wrong view in script window was being printed
• added new checkbox to Find/Replace window, to allow user to specify wrap-around searches (which defaults to being on)
• pick up options for case sensitivity and wrap around searches whenever "finding/replacing again", so user can change check boxes and continue searching using menu commands
• include a page header (showing document name and page number) when printing scripts and dictionaries
• fit script width to page, when printing (bug: it seems that lines can sometimes be split across pages, even though MA's TEView is supposed to stop this happening)
• if checking script syntax detects a script syntax error, script is marked as dirty again (to make sure it's ready for a recompile)
• rebuilt "pause script" OSAX as final 1.1 version candidate
• another attempt at making sure that after recompiling the original selection is maintained (for some reason, scrolls selection to top of window)
• don't attempt to check script syntax if saving/closing text-only file
• if no compiled script available when saving, always try to save a text file
• lots of debugging of document save functions to make sure right file info is written (to overcome odd bugs where saved file ended up with wrong type, rendering file un-readable)
- known bug remaining: if try to save script file over existing text
file, and then subsequently save as text over same script file, it won't
change file type (ie only saves script file) - no data is lost, though
• bug fix: SW was trashing memory when certain "save" and "save as" operations failed; for instance, this sequence of events would cause a crash (it is fixed in 1.1b5):
- open text file
- save as text copy1
- close
- open text copy1
- save as text copy2
- change & compile
- save (as script) over same file
- fails, file busy
- save again over same file
- fails with wierd error, & deletes temp & new files
- memory trashed:(spurious?) address error changing icons in toolbar
ScriptWizard 1.1b4x17
Version 1.1b4x17 differs from version 1.1b3x47 as follows:
• Made Dictionary window's default formatting match the Apple Script Editor. Also, you can change the formatting of Dictionary window listings via the AS formatting window.
• "Find" menu and "Script" menu now place checkmarks against the menu items that open windows, and these menu items can now be used to close already-open windows.
• Bug fix: script edit window remembers the current scroll position and the original insertion point is restored after a script is syntax-checked.
• Bug fix: can now "save as" applet/droplet again (bug introduced in 1.1b3).
• Bug fix: original applet's 'SIZE' resources are restored after applet is re-saved.
• Bug fix: Find window always pre-selects the target text when it is reopened.
• Bug fix: event log always transcribes the "log" event.
• A new version of the "pause script" OSAX is supplied; this must be installed for animated single-stepping to work. An error message is shown if it is missing, or if an out of date version is present.
• Variable watcher window now longer zoomable (workaround for bug: zooming variable watcher window, in 1.1b3 could render the lower pane of the window invisible).
ScriptWizard 1.1b3x47
Version 1.1b3x47 differs from version 1.1b2x14 as follows:
• 'Subject' attribute of incoming Apple events is recognized again.
• Text window drag initiation has been disabled.
• Optimised display of dictionary window text (makes it faster).
• Dictionary window no longer sorts contents of event/class lists.
• PowerMac native and 68K native versions of program included (when program ships these will be combined into one fat binary).
ScriptWizard 1.1b2x14
Version 1.1b2x14 differs from version 1.1b1x4 as follows:
• Bug fix: no longer fails preparing very short scripts for single stepping.
• Bug fix: last line in script wasn't single stepping (no step helper).
• Removed go-away box from progress window.
• Added go-away box to toolbar windows.
• Bottom pane of variable watcher now has vertical scroll-bar.
ScriptWizard 1.1b1x4
Version 1.1b1x4 differs from version 1.1a6x23 as follows:
• Find/replace now uses a much faster Boyer-Moore search engine.
• 'Replace all' reinstated.
ScriptWizard 1.1a6x23
Version 1.1a6x23 differs from version 1.1a5x44 as follows:
• Find/replace working again.
• 'Locate' popup working again.
• 'Paste reference' working again.
• Drag & drop support is now in place; some bugs & sporadic crashes have been noticed in internal testing; please report any cases you find so we can reproduce & fix the problem.
• 'Pause Script' OSAX revised, & debug helper apple event implemented so that SW can check the version of 'Pause script' that is currently installed, and inform user if it's out of date.
• Memory used for script analysis during the 'preparing for single stepping' phase is now allocated from temporary memory.
• User is alerted if true single stepping failed, because of: {i} missing or out of date 'pause script' OSAX; or {ii} some failure (like, out of memory) stopped script analysis.
• A status window is displayed while script analysis proceeds.
• Fake '¬\n' line endings previously caused script analysis to fail; this has been fixed.
ScriptWizard 1.1a5x44
Run-time memory requirements have (temporarily) increased to 2MB; the extra is required for single stepping. Memory requirements are expected to return to normal in later releases.
Version 1.1a5x44 differs from version 1.1a5x1 as follows:
• Find/replace, 'locate' popup, and tabs are all broken, temporarily.
• Fixed bug: was updating from wrong script when rebuilding var watcher while single stepping. Variable watcher now works correctly.
• Modified "pause script" handler so it causes an immediate single step (in answer to complaint in MW US review).
• Fixed bug that stopped user breaking out of pause loop.
• Fixed bug that caused first line to be executed without stepping.
• A bunch of bugs in the single stepping mechanism have been fixed, that should allow it to work correctly. Further bug reports are of course very welcome.
ScriptWizard 1.1a5x1
Version 1.1a5x1 differs from version 1.1a4 as follows:
• The Startup screen is now displayed for longer, and it goes away automatically, without delaying the startup process.
• Substantial (internal) changes to remove the program's dependency on the WSE text editing engine; future releases will offer an alternative text editing engine. (The current release still uses WSE.) If you discover any new bugs in the text editor please let us know.
• A new version of the "pause script" OSAX is included - this must be installed in your Scripting Additions folder, or single stepping will not work!
• Single stepping works differently to prior releases. We've been listening to the criticisms of our users (and the press!) and we've implemented real single stepping. There is a short delay the first time (after loading or making changes to the script) you click the single step button, while ScriptWizard analyses the script; following this delay, each executable line of script is highlighted in the script editor window before it is executed. So, ScriptWizard now supports "true" single stepping. If you prefer to use the old "Apple event stepping" mechanism un-check the "Animate while Checking" item in the Script menu.
Notes on single stepping:
– The single stepping mechanism being used is fully compatible with the normal OSA APIs, and is internationalizable so it is not restricted to the US English dialect of AppleScript (unlike other single stepping schemes that have been suggested). The current release of ScriptWizard is specific to the AppleScript English dialect but this restriction will be removed shortly. We are committed to fully supporting all international dialects of AppleScript.
– When a script execution error occurs during single stepping, the currently executing line will be highlighted, not the sub-expression in which the failure occurred.
ScriptWizard 1.1a4
Version 1.1a4 differs from version 1.1a3 as follows:
• lots of internal bug fixes to reduce and/or eliminate bad pointer references when starting up and when saving files;
• the Variable Watcher has been rewritten; two main changes visible to users are:
- there is a user-resizable lower pane that, when you click on a variable name in the list, displays the selected variable's value in full (no truncation if you resize the pane to fit it);
- the internal mechanisms display longer variable lists faster;
• the crash that ocurred when saving a script as a mini-application has been fixed (correcting this took most of our time this week, which is why there are so few user-visible changes).
ScriptWizard 1.1a3
Version 1.1a3 differs from version 1.1a2 as follows:
• a window showing the program's version number is shown during initialization;
• the panes of Dictionary windows can be resized by the user;
• printable panes of windows are pre-activated when the windows are opened, so that the file menu print commands are always available;
• documents should now be openeable even if no printer driver is selected in the Chooser (this bug fix not yet tested);
• the debug log window is now printable;
• the names of properties of error records and error ranges (see below) have been changed by the addition of underscores in place of white space, to avoid conflicts with predefined names in AppleScript 1.1 (these conflicts stopped use of shortcut "on error" handlers)
• a script run in one document can now run another script document, or send arbitrary Apple event messages to it; the syntax to use is something like this:
tell document "my compiled script"
callMySubroutine(param1, param2) -- sending an arbitrary message
end tell
or
tell document "my compiled script"
run -- sending a predefined Apple event
end tell
Although the above works, there are still a few tweaks to be made: in particular, the target script can only be addressed as a named document, not as a window; the target script must already be compiled (ie you need to check syntax if you've edited it); you can't do single step debugging properly inside scripts called from other scripts.
This will be a great way to debug script applications: send them "open document" and "idle" Apple events from another script document, while both are open in ScriptWizard. Feedback on all this will be welcomed.
ScriptWizard 1.1a2
Version 1.1a2 differs from version 1.0.1 as follows:
• the following new apple events have been defined; they accept script source code, or compiled script objects, or file aliases as their arguments (see the Dictionary for fuller details), and allow ScriptWizard to act as a background script compilation and execution server:
"compile script" -- same event name & ID as the one below
"get source code"
"do script" -- note that the option to initially pause script in the debugger is not yet active
• a new apple event for script editing has been defined, but not yet implemented:
"edit script"
• the following new apple events have been defined (see the Dictionary for fuller details), and operate on open script documents (note: the direct object must be the script object, not the window); via these events, the script-control toolbar is now scriptable and recordable:
"compile script"
"run script" -- note that the option to initially pause script in the debugger is not yet active
"step script"
"pause script"
"stop script"
"start recording"
"stop recording"
• two new Apple event classes have been defined to return error status information after a script compilation or execution failure: script error record, and script error range (see the Dictionary for fuller details; the properties of these records are defined in the standard Apple event registry); after a failure has been reported, send the following new apple event message to get full details of the error:
"script error"
• the Core suite of Apple events is declared in the 'aete' resource, and mostly works (for instance, document and window operations are scriptable and recordable; text editing within windows is not yet scriptable, however)
• a new "debug log" window can be opened from the Windows menu; this window will not be available in the shipping version of SW; it can be used to log and examine Apple events received by ScriptWizard
• the toolbar can be shown and hidden (using the Windows menu) and it can be toggled between horizontal and vertical states by clicking in the Zoom widget; the toolbar state is remembered in the application preferences file
• it requires more memory; the default memory partition is 1600K, not 1200K (this is partly down to debugging code that has been inserted for our own use)
• opening the Dictionary windows is currently slower than in 1.0.1; this part of the code is due for a re-write in the 1.1 release, so please be patient
• scrollbars are 'live" (feedback is immediate during scrolling)
Contact information:
Please send all your bug reports and feedback to this electronic mail address:
sw.test@ctalk.exnet.com (this e-mail address is due to change shortly; if you have trouble sending messages to it, use "commstalk.hq@applelink.apple.com" instead).